difference between static and private constructor in c